package com.tsystems.services;

import java.util.List;

import com.tsystems.dao.TrainDAO;
import com.tsystems.entities.Train;

/**
 * 
 * @author 4194
 * 
 *         Класс, отвечающий за операции с поездами.
 */
public class TrainServices {

	private static TrainServices instance;

	public static synchronized TrainServices getInstance() {
		if (instance == null) {
			instance = new TrainServices();
		}
		return instance;
	}

	private TrainServices() {

	}

	/**
	 * Возвращает список всех поездов, которые содержатся в базе
	 * 
	 * @return список поездов.
	 */
	public synchronized List<Train> viewTrains() {

		TrainDAO trainDAO = new TrainDAO();
		List<Train> trains = trainDAO.getTrainList();
		return trains;

	}

	/**
	 * Добавляет в базу поезд, если такого поезда в базе еще нет.
	 * 
	 * @param train
	 *            - поезд
	 * @return "Поезд успешно добавлен.", если все хорошо, иначе - сообщение об
	 *         ошибке
	 */
	public synchronized String addTrain(Train train) {

		TrainDAO trainDAO = new TrainDAO();
		Train trainFound = trainDAO.getTrainByNumber(train.getNumber());

		if (trainFound != null) {
			return "Такой поезд уже существует в базе!";
		}

		trainDAO.insert(train);
		return "Поезд успешно добавлен!";
	}

}
